/* alloc/free: maintained by symlist
 */
typedef struct _Symbol {
	char *name;
	struct _Symbol *prev;
	struct _Symbol *next;
	void *priv;
}Symbol;

/* alloc: 
 * free:
 */
typedef struct _SymList {
	Symbol *sym_list;
}SymList;

static inline SymList* symlist_init(void)
{
	SymList *sl;
	sl = malloc(sizeof(SymList));
	memset(sl, 0, sizeof(SymList));
	return sl;
}
void symlist_free(SymList *sl);
Symbol* symlist_add(SymList *sl, char *name);
void symlist_delete(SymList *sl, Symbol *sym);
Symbol* symlist_match(SymList *sl, char *name);
